package com.atguigu.tingshu.album.mapper;

import com.atguigu.tingshu.enums.TrackStatType;
import com.atguigu.tingshu.model.album.TrackStat;
import com.atguigu.tingshu.vo.album.TrackStatVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface TrackStatMapper extends BaseMapper<TrackStat> {

    /**
     * @param @param trackStatList
     * @return
     * @name insertBatch
     * @description 批量新增
     */
    void insertBatch(@Param("trackStatList") List<TrackStat> trackStatList);

    /**
     * 查询专辑下所有声音的统计信息总和
     *
     * @param albumId  专辑ID
     * @param statType 统计类型
     * @return 统计数量
     */
    Integer sumStatNumByAlbumId(@Param("albumId") Long albumId, @Param("statType") String statType);

    /**
     * 根据声音ID查询声音统计信息
     *
     * @param trackId        声音ID
     * @param trackStatTypes 统计类型列表
     * @return 声音统计信息
     */
    TrackStatVo getTrackStatVoByTrackId(@Param("trackId") Long trackId,
            @Param("trackStatTypes") List<TrackStatType> trackStatTypes);
}
